from django.shortcuts import render
from django.http import HttpResponse
import re
# Create your tests here.

class LoginMiddleware:
    def __init__(self,get_response):
        self.get_response = get_response
        
    def __call__(self,request):

        # 检测是否已经登录

        # 检测当前用户的请求路径 re : /myadmin/ 开头
        # 但是不包括登录注册与退出登录

        urllist = ['/myadmin/adminlogin/','/myadmin/adminvcode/']
        # 是否请求进入后台，并且不是后台的登录注册
        if re.match('/myadmin/',request.path) and request.path not in urllist:
            # 检测session中是否存在 登录数据记录
            if request.session.get('AdminUser','') == '':
                # 如果在session没有记录，则证明没有登录，跳转到登录页面
                return HttpResponse('<script>alert("请先登录");location.href="/myadmin/adminlogin/";</script>')


        # 前台的登录验证，检测是否登录
        homeurls = ['^/$','^/list/','^/info/','^/register/','^/login/','^/sendsms/','^/myadmin/']
        isok = False
        for x in homeurls:
            isok = re.match(x,request.path) or isok

        # 如果是需要验证的
        if not isok:
            # 且未登录过，session中没有记录
            if request.session.get('VipUser','') == '':
                return HttpResponse('<script>alert("请先登录");location.href="/login/";</script>')

                

        # 放行
        response = self.get_response(request)
        return response